import service from "@/request/Axios";

/**
 * @description 获取轮播图数据
 * */

export const getSwiper = ()=>{
  return service.get('/api/banner?type=0')
}

/**
 * @description 获取推荐歌单
 * @params limit {Number} 默认30条不支持offset
*/
export const getPersonalized = (limit=10)=>{
  return service.get('/api/personalized?limit=' + limit)
}

// 获取新音乐 可选limit
export const getNewSong = (limit=10)=>{
  return service.get('/api/personalized/newsong?limit=' + limit)
}

// 独家放送（入口列表）
export const getPersonalizedPrivate = ()=>{
  return service.get('/api/personalized/privatecontent')
}

// 推荐MV
export const getHostMv = () => {
  return service.get('/api/personalized/mv')
}

// 获取歌曲的封面图片
export const getMusicCover = (ids) => {
  return service.get(`/api/song/detail?ids=${ids}`)
}

// 必选参数 : id : 音乐 id level: 播放音质等级, 分为 standard => 标准, exhigh=>极高, lossless=>无损, hires=>Hi-Res
export const getMusicUrl = (id,level='lossless')=>{
  return service.get(`/api/song/url/v1?id=${id}&level=${level}`)
}

// 获取歌单所有歌曲
// limit : 限制获取歌曲的数量，默认值为当前歌单的歌曲数量 offset 偏移量 1-11 2-12
export const getPlayListDetail = (id,limit='8',offset='')=>{
  return service.get(`/api/playlist/track/all?id=${id}&limit=${limit}&offset=${offset}`)
}

// 获取多个音乐详情  传入为多个音乐id数组
export const getMoreSongDetail = (songArr) => {
  let str = songArr.join(',')
  return service.get('/api/song/url?id='+str)
}

// 获取热搜列表 详细
export const getHostDetail = ()=>{
  return service.get('/api/search/hot/detail')
}

// 根据关键字搜索
// /cloudsearch?keywords=海阔天空  可选参数limit  默认返回数量是30 offset 偏移量分页
// type: 搜索类型；默认为 1 即单曲 , 取值意义 : 1: 单曲, 10: 专辑, 100: 歌手, 1000: 歌单, 1002: 用户, 1004: MV, 1006: 歌词, 1009: 电台, 1014: 视频, 1018:综合, 2000:声音(搜索声音返回字段格式会不一样)
/**
 * @params {String} keywords 可以用空格隔开 多个关键词
 * @params {Number} limit offset
 * @return Promise
*/
export const getKeyWord = (keywords,limit,current,type=1) => {
  let offset = (current - 1) * limit 
  return service.get(`/api/cloudsearch?keywords=${keywords}&limit=${limit}&offset=${offset}&type=${type}`)
}


// 获取音乐歌词接口
export const getMusicSongWord = (id) => {
  return service.get('/api/lyric?id=' + id)
}


/**
 * 获取歌曲对应的类型的评论
 * @params {Number} id 歌曲的id
 * @params {Number} type 获取歌曲评论类型  0 歌曲 1mv 2歌单 3专辑 4电台 5视频 6动态
 * @params {Number} pageNo 当前页数
 * @params {Number} pageSize 分页参数每页多少条数据 默认20 
 * @params {Number} sortType 排序方式 1推荐排序 2按热度排序 3按时间排序
 * */ 
export const getMusicTallk = (id,type,pageNo,pageSize,sortType=2) => {
  return service.get(`/api/comment/new?type=${type}&id=${id}&sortType=${sortType}&pageSize=${pageSize}&pageNo=${pageNo}`)
}

// 获取歌手热门音乐
export const getSongsAuthorMusic = (id)=>{
  return service.get('/api/artist/top/song?id='+id)
}

// 获取最新mv列表
/**
 * @params {String} area  地区 全部 可选值为全部,内地,港台,欧美,日本,韩国,不填则为全部 可选
 * @params {Number} limit 取出数量默认30
 * */ 
export const getHostMV = (limit=30,area='') => {
  return service.get(`/api/mv/first?limit=${limit}&area=${area}`)
}

/**
 * @description 获取全部mv
 * @params {String} area 地区,可选值为全部,内地,港台,欧美,日本,韩国,不填则为全部
 * @params {String} type 类型,可选值为全部,官方版,原生,现场版,网易出品,不填则为全部
 * @params {String} order  排序,可选值为上升最快,最热,最新,不填则为上升最快
 * */
export const getCountMv = (area='全部',type='全部',order='上升最快',limit=30,offset=1) => {
  return service.get(`/api/mv/all?area=${area}&type=${type}&order=${order}&limit=${limit}&offset=${offset}`)
}

// 获取mv数据 需要单独获取mv的视频数据 
export const getMvInfo = (mvid) => {
  return service.get('/api/mv/detail?mvid=' + mvid)
}

// 根据mvid获取mv视频信息 r为视频的码率 可以根据mv获取的数据进行选择码率
export const getMvMedia = (mvid,r=1080) => {
  return service.get(`/api/mv/url?id=${mvid}&r=${r}`)
}

//  根据mvid获取相似的mv推荐
export const getSimiMv = (mvid) => {
  return service.get('/api/simi/mv?mvid=' + mvid)
}

//根据mvid 获取当前mv的评论
//before: 分页参数,取上一页最后一项的 time 获取下一页数据(获取超过 5000 条评论的时候需要用到)
export const getMvComment = (mvid,limit=20,offset,before) => {
  return service.get(`/api/comment/mv?id=${mvid}&limit=${limit}&offset=${offset}&before=${before}`)
}